# 正则表达式（Regular Expression，简称 regex 或 regexp）是一种强大的文本处理工具，它使用一种描述性的语言来给字符串定义一个模式（pattern），可以用来检查一个字符串是否与某种模式匹配。
# 通过python中的re模块去学习并使用正则表达式的基本知识点
import re
data='Python is the best language in the world'
# re.match(pattern,string,flags=0)
# re.match()方法只能从字符串起始位置匹配(从头匹配)，第一个参数是匹配的正则表达式，第二个参数是需要被匹配的字符，第三个参数是可选标志位如是否区分大小写，多行匹配等
result=re.match('(.*) is (.*?) .*',data,re.I)#从字符串的起始位置匹配，匹配成功就返回match对象(这个对象包含了关于匹配的信息，如匹配的位置、匹配的文本)，否则返回None，第一个字母不符合条件，则不再进行匹配，直接返回None，re.I表示忽略大小写
if result:#在布尔上下文中，None 被视为 False
    print('匹配成功...')
    print(result)
else:
    print('匹配失败...')#如果匹配失败，则没有group函数，因为是一个空对象None(匹配失败时，返回的是None而不是一个Match对象。由于None不是一个Match对象，因此它没有group()或groups()这些Match对象特有的方法。)
print(type(result))#返回<class 're.Match'>
# group(num=0)可以获取匹配的数据，如果有多个匹配结果的话，那么整体会以元组的形式存放到group对象中，并且可以通过组号获取
print(result.group())#返回匹配到的所有字符
print(result.groups())#返回一个包含所有小组字符串的元组，从1一直到所含的小组号

# re.search()搜索整个字符串，返回第一个成功的匹配。从前向后，找到第一个后，就停止，不会继续向后

# re.findall()匹配整个字符串，找出全部匹配项

